package Thread;


class Counter{
    private int count=0;
    //synchronized 的另外一种写法
  synchronized   public void add(){
        count++;
    }
    //被static修饰的synchronized的写法
    public synchronized  static void fun(){
       synchronized(Counter.class){
           System.out.println("  //被static修饰的synchronized的写法");
       }
    }
    public int getCount(){
      return count;
    }
}
public class Dom19 {
    public static void main(String[] args) throws InterruptedException {
         Counter counter=new Counter();
        Thread t1=new Thread(()->{
            for (int i = 0; i < 5000; i++) {
                counter.add();
            }
        });
        Thread t2=new Thread(()->{
            for (int i = 0; i < 5000; i++) {
                counter.add();
            }
        });
        t1.start();
        t2.start();
        t1.join();
        t2.join();
        System.out.println("count=" + counter.getCount());
        Counter.fun();
    }
}
